package mathx

import (
	"unsafe"
)

type TransformQPF = TransformQPT[float32]
type TransformQPD = TransformQPT[float64]
type Transform = TransformQPF

type TransformQPT[T Float] struct {
	Q QuaternionT[T]
	P Vec3T[T]
}

func (t *TransformQPT[T]) SetIdentity() {
	t.Q.SetIdentity()
	t.P.Set(0, 0, 0)
}
func (t *TransformQPT[T]) UnsafePtr() uintptr {
	return uintptr(unsafe.Pointer(t))
}
